package com.SmartCare.service.medicine;

import com.baomidou.mybatisplus.extension.service.IService;
import com.SmartCare.common.Result;
import com.SmartCare.pojo.medicine.Medication;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * 用药情况表 服务类
 */
public interface MedicationService extends IService<Medication> {

    /**
     * 所有药品名称查询 用于填充药物名称下拉框
     */
    Result medicineNameQuery();

    /**
     * 推荐药品信息查询
     */
    Result medicineQuery(String name);


    /**
     * 添加药品信息
     * @param medication 药品对象
     * @return 不返回数据
     */
    Result addMedicine(Medication medication);

    /**
     * 获取所有药品信息
     * @param careHomeName 养老院名
     * @return 返回药品DTO对象
     */
    Result getAll(String careHomeName);

    /**
     * 根据id修改药品信息
     * @param medication 药品对象
     * @return 不返回信息
     */
    Result edit(Medication medication);

    /**
     * 基于药品名进行模糊查询
     * @param keyword 查询关键词
     * @return 返回查询结果
     */
    Result search(String keyword);

    /**
     * 根据id删除药品信息
     * @param id 药品id
     * @return 不返回信息
     */
    Result deleteById(Long id);

    /**
     * 通过excel批量导入药品信息
     * @param file excel文件
     * @param name 养老院名
     * @return 不返回数据
     */
    Result importMedication(MultipartFile file, String name);

    /**
     * 导出药品信息
     * @param response 响应流
     * @param name 养老院名
     */
    void export(HttpServletResponse response, String name);
}
